package com.study.compose.coroutines

import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.channels.Channel
import kotlinx.coroutines.launch
import kotlinx.coroutines.runBlocking

/**
 * 通道
 * 通道提供了一种在流中传输值的方法，也就是在不同的协程中进行通信
 */

fun main() = runBlocking<Unit> {
    //定义一个通道
    val channel = Channel<Int>()

    //开启一个IO线程的协程
    launch(Dispatchers.IO) {
        println("发送的线程：${Thread.currentThread().name}")
        channel.send(1)
    }

    println("接收的线程：${Thread.currentThread().name}")
    //接收到数据并打印
    println("接收到数据：${channel.receive()}")
}